-- @Author: 作者QQ381990860
-- @Date:   2022-05-07 14:23:06
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-06-18 20:51:25
function 装备处理类:召唤兽装备打造(id,格子1,格子2,类型)
local  道具id={
 [1]=玩家数据[id].角色.道具.包裹[格子1]
 ,[2]=玩家数据[id].角色.道具.包裹[格子2]
 }
 self.书铁id={}
 if 玩家数据[id].物品[道具id[1]].名称==玩家数据[id].物品[道具id[2]].名称 then
   发送数据(玩家数据[id].连接id,7,"#Y/这种材料无法使用")
   return 0
 elseif 玩家数据[id].物品[道具id[2]].名称=="上古锻造图策" and 玩家数据[id].物品[道具id[1]].等级<玩家数据[id].物品[道具id[2]].等级 then
   发送数据(玩家数据[id].连接id,7,"#Y/你的"..玩家数据[id].物品[道具id[1]].名称.."等级太低了")
   return 0
 elseif 玩家数据[id].物品[道具id[1]].名称=="上古锻造图策" and 玩家数据[id].物品[道具id[1]].等级>玩家数据[id].物品[道具id[2]].等级 then
    发送数据(玩家数据[id].连接id,7,"#Y/你的"..玩家数据[id].物品[道具id[2]].名称.."等级太低了")
   return 0
 else
    if 玩家数据[id].物品[道具id[2]].名称=="上古锻造图策" then
     self.临时id1=道具id[2]
      self.书铁id=道具id[1]
    else
      self.临时id1=道具id[1]
      self.书铁id=道具id[2]
    end

   local 类型=玩家数据[id].物品[self.临时id1].种类
   self.临时等级 = 玩家数据[id].物品[self.临时id1].等级
   local  lslq  =玩家数据[id].物品[self.书铁id].灵气
    if 玩家数据[id].角色.当前体力<self.临时等级*2 then
    发送数据(玩家数据[id].连接id,7,"#y/你没那么多的体力")
    return 0
    elseif 银子检查(id,self.临时等级*50000)==false then
    发送数据(玩家数据[id].连接id,7,"#y/你没那么多的银子")
    return 0
    -- elseif 玩家数据[id].角色.生活技能.炼金术<self.临时等级 then
    --  发送数据(玩家数据[id].连接id,7,"#y/你的炼金术等级太低了")
    --  return 0
    end
    玩家数据[id].角色.当前体力=玩家数据[id].角色.当前体力-self.临时等级*2
   角色处理类:扣除银子(玩家数据[id],self.临时等级*50000,20)
    if 类型=="铠甲" then
    self.临时属性="防御"
    self.临时名称=self:取bb装备(玩家数据[id].物品[self.临时id1].等级,类型)
    elseif 类型=="项圈" then
    self.临时属性="速度"
    self.临时名称=self:取bb装备(玩家数据[id].物品[self.临时id1].等级,类型)
    elseif 类型=="护腕" then
    self.临时属性="伤害"
    self.临时名称=self:取bb装备(玩家数据[id].物品[self.临时id1].等级,类型)
    end
     self.附加属性=""
    if math.random(100)<=35 and lslq > 50  then
      local sj = {"伤害","气血","魔法","灵力"}
     self.附加属性=sj[math.random(1,#sj)]
    end
    玩家数据[id].物品[道具id[1]]=nil
    玩家数据[id].物品[道具id[2]]=nil
    玩家数据[id].角色.道具.包裹[格子1]=nil
    玩家数据[id].角色.道具.包裹[格子2]=nil
   玩家数据[id].物品[self.临时id1]={}
   玩家数据[id].物品[self.临时id1].等级=self.临时等级

   玩家数据[id].物品[self.临时id1].主属性={名称=self.临时属性,数值=math.floor(math.random(self.临时等级*lslq/100*0.5,self.临时等级*lslq/100*0.8))}
   玩家数据[id].物品[self.临时id1].类型="召唤兽装备"
    玩家数据[id].物品[self.临时id1].种类=类型
   玩家数据[id].物品[self.临时id1].名称=self.临时名称
   玩家数据[id].物品[self.临时id1].耐久度=500
   玩家数据[id].物品[self.临时id1].制造者=玩家数据[id].角色.名称
    玩家数据[id].物品[self.临时id1].锻造数据 ={}
  if self.附加属性~="" then
    玩家数据[id].物品[self.临时id1].附加属性={名称=self.附加属性,数值=math.floor(math.random(self.临时等级*lslq/100*0.7,self.临时等级*lslq/100))}
    if self.附加属性=="气血" or self.附加属性=="魔法" then
    玩家数据[id].物品[self.临时id1].附加属性.数值=玩家数据[id].物品[self.临时id1].附加属性.数值*1
    end
  end
  if math.random(100)<=30 then
    local sjsx ={"体质","魔力","力量","耐力","敏捷"}
    玩家数据[id].物品[self.临时id1].单加={名称=sjsx[math.random(1,#sjsx)],数值=math.floor(math.random(self.临时等级*lslq/100*0.25,self.临时等级*lslq/100*0.3))}
    if math.random(100)<=10 then
    玩家数据[id].物品[self.临时id1].双加={名称=sjsx[math.random(1,#sjsx)],数值=math.floor(math.random(self.临时等级*lslq/100*0.25,self.临时等级*lslq/100*0.3))}
    end
  end

  玩家数据[id].角色.道具.包裹[格子1]=self.临时id1
 发送数据(玩家数据[id].连接id,7,"你制造出了#r/"..self.临时名称)
 发送数据(玩家数据[id].连接id,3006,"66")
  end
 end
function 装备处理类:打造装备(id,格子1,格子2,类型)-------------------------------------------完成--
 local ls ={}
 local 格子数据={}
 for n=1,2 do
    ls[n]=玩家数据[id].角色.道具.包裹[格子1]
    if 玩家数据[id].物品[ls[n]]==nil  then
      发送数据(玩家数据[id].连接id,7,"#y/这样的道具不存在")
      return 0
    end
 end
  if  玩家数据[id].物品[ls[1]].名称=="制造指南书" or 玩家数据[id].物品[ls[1]].名称=="灵饰指南书" or 玩家数据[id].物品[ls[1]].名称=="上古锻造图策" or 玩家数据[id].物品[ls[1]].名称=="巨剑·元身"  or 玩家数据[id].物品[ls[1]].名称=="灯笼·元身"  or 玩家数据[id].物品[ls[1]].名称=="鞋履·元身"   or 玩家数据[id].物品[ls[1]].名称=="束带·元身"  or 玩家数据[id].物品[ls[1]].名称=="挂坠·元身"  or 玩家数据[id].物品[ls[1]].名称=="纱衣·元身"  or 玩家数据[id].物品[ls[1]].名称=="坚甲·元身"  or 玩家数据[id].物品[ls[1]].名称=="冠冕·元身"  or 玩家数据[id].物品[ls[1]].名称=="头盔·元身"  or 玩家数据[id].物品[ls[1]].名称=="爪刺·元身"  or 玩家数据[id].物品[ls[1]].名称=="长鞭·元身"  or 玩家数据[id].物品[ls[1]].名称=="双剑·元身"  or 玩家数据[id].物品[ls[1]].名称=="双环·元身"  or 玩家数据[id].物品[ls[1]].名称=="飘带·元身"  or 玩家数据[id].物品[ls[1]].名称=="魔棒·元身"  or 玩家数据[id].物品[ls[1]].名称=="枪·元身"  or 玩家数据[id].物品[ls[1]].名称=="锤·元身"  or 玩家数据[id].物品[ls[1]].名称=="斧·元身"  or 玩家数据[id].物品[ls[1]].名称=="剑·元身"  or 玩家数据[id].物品[ls[1]].名称=="刀·元身"  or 玩家数据[id].物品[ls[1]].名称=="扇·元身"  or 玩家数据[id].物品[ls[1]].名称=="宝珠·元身"  or 玩家数据[id].物品[ls[1]].名称=="弓·元身"  or 玩家数据[id].物品[ls[1]].名称=="长杖·元身"  or 玩家数据[id].物品[ls[1]].名称=="伞·元身"  then
     格子数据[1]=格子1
     格子数据[2]=格子2
  elseif  玩家数据[id].物品[ls[1]].名称=="百炼精铁" or 玩家数据[id].物品[ls[1]].名称=="元灵晶石" or 玩家数据[id].物品[ls[1]].名称=="战魄" or 玩家数据[id].物品[ls[1]].名称=="天眼珠"or 玩家数据[id].物品[ls[1]].名称=="九眼天珠"or 玩家数据[id].物品[ls[1]].名称=="三眼天珠" then
     格子数据[1]=格子2
     格子数据[2]=格子1
  else
     发送数据(玩家数据[id].连接id,7,"#y/这种材料无法使用")
  end
  local 道具id={}
  for i=1,2 do
   道具id[i]=玩家数据[id].角色.道具.包裹[格子数据[i]]
  end
  if 玩家数据[id].物品[道具id[1]].名称=="灵饰指南书"  and  玩家数据[id].物品[道具id[2]].名称~="元灵晶石" then
        发送数据(玩家数据[id].连接id,7,"#y/材料不对")
         return 0
  elseif 玩家数据[id].物品[道具id[1]].名称=="上古锻造图策"  and  玩家数据[id].物品[道具id[2]].名称~="天眼珠"and 玩家数据[id].物品[道具id[2]].名称~="九眼天珠" and 玩家数据[id].物品[道具id[2]].名称~="三眼天珠" then
        发送数据(玩家数据[id].连接id,7,"#y/材料不对")
        return 0
  end
  if 玩家数据[id].物品[道具id[1]].名称=="灵饰指南书" or  玩家数据[id].物品[道具id[2]].名称=="灵饰指南书" or 玩家数据[id].物品[道具id[1]].名称=="元灵晶石" or  玩家数据[id].物品[道具id[2]].名称=="元灵晶石" then
     self:灵饰打造(id,格子数据[1],格子数据[2],类型)
     return 0
  elseif 玩家数据[id].物品[道具id[1]].名称=="上古锻造图策" or  玩家数据[id].物品[道具id[2]].名称=="上古锻造图策" or 玩家数据[id].物品[道具id[1]].名称=="天眼珠" or  玩家数据[id].物品[道具id[2]].名称=="天眼珠"  or 玩家数据[id].物品[道具id[1]].名称=="九眼天珠" or  玩家数据[id].物品[道具id[2]].名称=="九眼天珠" or 玩家数据[id].物品[道具id[1]].名称=="三眼天珠" or  玩家数据[id].物品[道具id[2]].名称=="三眼天珠" then
      self:召唤兽装备打造(id,格子数据[1],格子数据[2],类型)
     return 0
  end
 if 玩家数据[id].物品[道具id[1]].名称==玩家数据[id].物品[道具id[2]].名称 then
   发送数据(玩家数据[id].连接id,7,"#y/这种材料无法使用")
   return 0

  elseif   玩家数据[id].物品[ls[2]].名称=="百炼精铁" and   玩家数据[id].物品[道具id[2]].等级< 玩家数据[id].物品[道具id[1]].等级 then
   发送数据(玩家数据[id].连接id,7,"#y/书铁的制作等级不匹配")
   return 0

  elseif   玩家数据[id].物品[ls[2]].名称=="制造指南书" and   玩家数据[id].物品[道具id[2]].等级< 玩家数据[id].物品[道具id[1]].等级 then
   发送数据(玩家数据[id].连接id,7,"#y/书铁的制作等级不匹配")
   return 0
 elseif 玩家数据[id].物品[道具id[2]].名称=="制造指南书" and 玩家数据[id].物品[道具id[2]].名称~="百炼精铁" then
   发送数据(玩家数据[id].连接id,7,"#y/材料不对")
   return 0
  elseif 玩家数据[id].物品[道具id[2]].名称=="灵饰指南书" and 玩家数据[id].物品[道具id[2]].名称~="元灵晶石" then
   发送数据(玩家数据[id].连接id,7,"#y/材料不对")
   return 0
  elseif 玩家数据[id].物品[道具id[1]].类型 =="元身"  and 玩家数据[id].物品[道具id[2]].名称 ~="战魄" then
   发送数据(玩家数据[id].连接id,7,"#Y/材料不对")
   return 0
  elseif 玩家数据[id].物品[道具id[2]].类型 =="元身" and 玩家数据[id].物品[道具id[1]].名称~="战魄" then
   发送数据(玩家数据[id].连接id,7,"#Y/材料不对")
   return 0

  else




      if  self:分类判断(玩家数据[id].物品[道具id[1]].种类)=="武器" and DebugMode==false then
          if 玩家数据[id].购买打造 and  玩家数据[id].购买打造<玩家数据[id].物品[道具id[1]].等级  then
                发送数据(玩家数据[id].连接id,7,"#y/你所购买的打造技巧等级太低了")
              return 0
          elseif 玩家数据[id].角色.辅助技能[10].等级<玩家数据[id].物品[道具id[1]].等级 then
              发送数据(玩家数据[id].连接id,7,"#y/你的打造技巧等级太低了")
              return 0
          end
      elseif   (self:分类判断(玩家数据[id].物品[道具id[1]].种类)=="头盔" or  self:分类判断(玩家数据[id].物品[道具id[1]].种类)=="衣服")and DebugMode==false then
              if 玩家数据[id].购买裁缝 and  玩家数据[id].购买裁缝<玩家数据[id].物品[道具id[1]].等级  then
                发送数据(玩家数据[id].连接id,7,"#y/你所购买的裁缝技巧等级太低了")
              return 0
            elseif 玩家数据[id].角色.辅助技能[11].等级<玩家数据[id].物品[道具id[1]].等级  then
                发送数据(玩家数据[id].连接id,7,"#y/你的裁缝技巧等级太低了")
                return 0
            end
      elseif  (self:分类判断(玩家数据[id].物品[道具id[1]].种类)=="鞋子"  or  self:分类判断(玩家数据[id].物品[道具id[1]].种类)=="项链" or  self:分类判断(玩家数据[id].物品[道具id[1]].种类)=="腰带") and DebugMode==false then
          if 玩家数据[id].购买炼金 and  玩家数据[id].购买炼金<玩家数据[id].物品[道具id[1]].等级  then
                发送数据(玩家数据[id].连接id,7,"#y/你所购买的炼金技巧等级太低了")
              return 0
         elseif 玩家数据[id].角色.辅助技能[12].等级<玩家数据[id].物品[道具id[1]].等级  then
          发送数据(玩家数据[id].连接id,7,"#y/你的炼金技巧等级太低了")
          return 0
         end

      end
      玩家数据[id].购买打造=nil
      玩家数据[id].购买裁缝=nil
      玩家数据[id].购买炼金=nil
      self.扣除金钱=玩家数据[id].物品[道具id[1]].等级*玩家数据[id].物品[道具id[1]].等级*100
      if 玩家数据[id].物品[道具id[1]].等级>=150 and 类型~="强化打造" then
        发送数据(玩家数据[id].连接id,7,"#y/此种装备必须采用强化打造方式种类")
        return 0
      end
      if 类型=="强化打造" then
          self.扣除金钱=self.扣除金钱*3
          if 角色处理类:GetTaskID(玩家数据[id],"打造")~=0 then
            发送数据(玩家数据[id].连接id,7,"#y/你已经有一个打造任务尚未完成")
            return 0
          elseif 玩家数据[id].物品[道具id[1]].等级<60 then
            发送数据(玩家数据[id].连接id,7,"#y/60级以下的书铁无法进行强化打造")
            return 0
          end
      end
      self.消耗体力=math.floor(玩家数据[id].物品[道具id[1]].等级*2)
      if 银子检查(id,self.扣除金钱)==false then
        发送数据(玩家数据[id].连接id,7,"#y/你没那么多的银子")
        return 0
      elseif 玩家数据[id].角色.当前体力<self.消耗体力 then
        发送数据(玩家数据[id].连接id,7,"#y/你没那么多的体力")
        return 0
      end
      玩家数据[id].角色.当前体力=玩家数据[id].角色.当前体力-self.消耗体力
     角色处理类:扣除银子(玩家数据[id],self.扣除金钱, "打造")
      self.临时鉴定=true
      if 玩家数据[id].物品[道具id[1]].等级>=10 then
       self.临时鉴定=false
      end
      if 类型=="强化打造" then
            self.临时分类=self:分类判断(玩家数据[id].物品[道具id[1]].种类)
            self.临时名称=self:获取名称(self.临时分类,玩家数据[id].物品[道具id[1]].种类,玩家数据[id].物品[道具id[1]].等级,2)
            self.随机强化石={"青龙石","玄武石","朱雀石","白虎石"}
            self.临时等级=玩家数据[id].物品[道具id[1]].等级
            self.临时数量=0


            if self.临时等级==60 then
            self.临时数量=14
            elseif self.临时等级==70 then
            self.临时数量=18
            elseif self.临时等级==80 then
            self.临时数量=24
            elseif self.临时等级==90 then
            self.临时数量=32
            elseif self.临时等级==100 then
            self.临时数量=40
            elseif self.临时等级==110 then
            self.临时数量=48
            elseif self.临时等级==120 then
            self.临时数量=60
            elseif self.临时等级==130 then
            self.临时数量=80
            elseif self.临时等级==140 then
            self.临时数量=100
            elseif self.临时等级==150 then
            self.临时数量=150
            elseif self.临时等级==160 then
            self.临时数量=200
            end
                local 增加熟练度 = math.floor(玩家数据[id].物品[道具id[1]].等级/5)
                玩家数据[id].角色.打造熟练度=玩家数据[id].角色.打造熟练度+增加熟练度
                发送数据(玩家数据[id].连接id,9,"#xt/#R/你当前的打造熟练度增加#G/"..增加熟练度)
          local 随机强化石= self.随机强化石[math.random(4)]
          local temp =道具处理类:寻找道具(玩家数据[id],{随机强化石})
               for i=1,#temp do
                  if 玩家数据[id].物品[玩家数据[id].角色.道具.包裹[temp[i]]].数量 >= self.临时数量 then
                        玩家数据[id].物品[玩家数据[id].角色.道具.包裹[temp[i]]].数量=玩家数据[id].物品[玩家数据[id].角色.道具.包裹[temp[i]]].数量-self.临时数量
                        if 玩家数据[id].物品[玩家数据[id].角色.道具.包裹[temp[i]]].数量 <=0 then
                            玩家数据[id].物品[玩家数据[id].角色.道具.包裹[temp[i]]] =nil
                            玩家数据[id].角色.道具.包裹[temp[i]]=nil
                        end
                        if 玩家数据[id].物品[道具id[1]].属性 then
                             self.临时id=self:生成装备(id,self.临时分类,self.临时名称,玩家数据[id].物品[道具id[1]].等级, 1.3, 1.15, false, 1,玩家数据[id].角色.名称,nil,nil,nil,nil,玩家数据[id].物品[道具id[1]].属性)
                        else
                            self.临时id=self:生成装备(id,self.临时分类,self.临时名称,玩家数据[id].物品[道具id[1]].等级, 1.3, 1.15, false, 1,玩家数据[id].角色.名称,nil,nil,nil,nil)
                        end
                        玩家数据[id].物品[道具id[2]]=nil
                        玩家数据[id].角色.道具.包裹[格子数据[2]]=nil
                        玩家数据[id].角色.道具.包裹[格子数据[1]]=self.临时id
                        发送数据(玩家数据[id].连接id,7,"#y/制造成功！")
                        道具处理类:索要打造道具(id,"包裹","打造")
                        发送数据(玩家数据[id].连接id,3006,"66")
                        发送数据(玩家数据[id].连接id,7,"#y/已经扣除背包"..self.临时数量.."个"..随机强化石)
                       return
                  end
               end
                  local 临时id6=tonumber(玩家数据[id].id.."501")
                  任务数据[临时id6]={
                  类型="打造"
                  ,NPC=30
                  ,当前=0
                  ,上次=0
                  ,id=id
                  ,起始=os.time()
                  ,分类=self.临时分类
                  ,名称=self.临时名称
                  ,等级=玩家数据[id].物品[道具id[1]].等级
                  ,道具=随机强化石
                  ,数量=self.临时数量

                  }
                 if 玩家数据[id].物品[道具id[1]].属性 then
                   任务数据[临时id6].元身 =table.copy(玩家数据[id].物品[道具id[1]].属性)
                 end
                  玩家数据[id].角色.任务数据[角色处理类:生成任务id(玩家数据[id])]=临时id6
                  发送数据(玩家数据[id].连接id,7,"#y/你获得了打造任务，请点击任务列表查看")
                  任务控制类:刷新追踪任务信息(id)
                  玩家数据[id].物品[道具id[1]]=nil
                  玩家数据[id].物品[道具id[2]]=nil
                  玩家数据[id].角色.道具.包裹[格子数据[2]]=nil
                  玩家数据[id].角色.道具.包裹[格子数据[1]]=nil
                  道具处理类:索要打造道具(id,"包裹","打造")
                  发送数据(玩家数据[id].连接id,3006,"66")
      else
        self.临时分类=self:分类判断(玩家数据[id].物品[道具id[1]].种类)
        self.临时名称=self:获取名称(self.临时分类,玩家数据[id].物品[道具id[1]].种类,玩家数据[id].物品[道具id[1]].等级,self.打造类型)
        self.临时id=self:生成装备(id,self.临时分类,self.临时名称,玩家数据[id].物品[道具id[1]].等级,1.15,1,nil,nil,玩家数据[id].角色.名称,nil,nil)
        玩家数据[id].物品[道具id[2]]=nil
        玩家数据[id].角色.道具.包裹[格子数据[2]]=nil
        玩家数据[id].角色.道具.包裹[格子数据[1]]=self.临时id
        发送数据(玩家数据[id].连接id,7,"#y/制造成功！")
        道具处理类:索要打造道具(id,"包裹","打造")
        发送数据(玩家数据[id].连接id,3006,"66")
      end
  end
end
function 装备处理类:分类判断(分类)
 if 分类=="男衣" or 分类=="女衣" then
     return "衣服"
    elseif 分类=="头盔" or 分类=="发钗" then
     return "头盔"
    elseif 分类=="鞋子"then
     return "鞋子"
    elseif 分类=="项链"then
     return "项链"
    elseif 分类=="腰带"then
     return "腰带"
    else
     return "武器"
   end
  end
function 装备处理类:取bb装备(等级,类型)
  local bb装备 =
   {
    铠甲={[0]="麻衣",[5]="皮甲",[15]="刺甲",[25]="骨排甲",[35]="青铜披甲",[45]="青铜披甲",[55]="玛瑙软甲",[65]="琉璃罩甲",[75]="连环铠甲",[85]="笼玉甲" ,[95]="嵌宝金甲",[105]="玳瑁衣",[115]="七星宝甲",[125]="缚龙甲",[135]="凤凰彩衣",[145]="织锦软褡",[155]="冰蚕织甲"},
    项圈={[0]="藤圈",[5]="竹编脖环",[15]="钢圈",[25]="荆棘环",[35]="骨环",[45]="青铜颈环",[55]="玛瑙石环",[65]="琉璃环",[75]="九曲环",[85]="笼玉环",[95]="嵌宝金环",[105]="玳瑁环",[115]="七星宝环",[125]="缚龙圈",[135]="鸾尾环",[145]="织锦颈圈",[155]="冰蚕丝圈"},
    护腕={[0]="铁腕",[5]= "竹编护腕",[15]="皮腕",[25]="针腕",[35]="骨镯",[45]="青铜护腕",[55]="玛瑙护腕",[65]="琉璃护腕",[75]="镂空银镯",[85]="笼玉镯",[95]="嵌宝金腕",[105]="玳瑁护腕",[115]="七星宝腕",[125]="缚龙筋",[135]="凤翎护腕",[145]="织锦彩带",[155]="冰蚕丝带"},
   }
   return bb装备[类型][等级]
 end

